<!--
 * @Author: YSM
 * @Description: 
 * @Date: 2022-09-02 16:06:18
 * @LastEditTime: 2022-09-02 16:12:05
 * @FilePath: \dcqc-pmsfl-web_1.0.6f:\杂物箱\技术\my_web_knowledge\html\文字竖排\transform竖排.html
-->
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container {
            position: absolute;
            right: 300px;
            margin-top: -200px;
            width: 440px;
            height: 1000px;
            background-color: #FFFFFF;
            padding-left: 36px;
            font-family: "楷体";
            border: 1px solid #999999;
            margin-left: 100px;
            overflow-y: scroll;
            overflow-x: hidden;
            -webkit-transform: rotate(90deg);
        }


        /**每一行的容器（竖列）**/

        .container .items {
            width: 445px;
            height: 34px;
            /*background-color: #EEEEEE;*/
            /*border-left: 1px solid #999999;*/
        }

        .container .items .item {
            display: inline-block;
            width: 20px;
            height: 20px;
            font-size: 20px;
            text-align: center;
            line-height: 20px;
            /*border-bottom: 1px solid #CCCCCC;*/
        }

        .container .items .item:hover {
            background-color: pink;
            cursor: pointer;
            font-size: 22px;
        }

        .action1 {
            width: 100px !important;
            padding-left: 20px;
        }

        .rotate {
            -webkit-transform: rotate(-90deg);
        }

        .style1 {
            background-color: #ff6699;
            color: #EEEEEE;
        }

        .style2 {
            background-color: #4c98ce;
            color: #EEEEEE;
        }

        #vertical div {
            width: 1.5em;
            float: right;
        }

        #vertical .title {
            font-size: xx-large;
            font-weight: bold;
            line-height: 1em;
        }
    </style>
</head>
<!-- 实现原理：
    把一段话的每一个字放在一个span标签中(文字比较多可以通过js生成span)，
    然后把这些span标签放在一个大的div容器中，
    将容器div顺时针旋转90度，
    然后将容器中的span逆时针旋转90度，
    经过两次旋转之后就达到了竖排文字的需求。
-->

<!--优缺点：
    优点：一大段文字也可以实现自动换行。
    缺点：在具体位置实现换行控制比较麻烦，而且每个字写都要用一个span标签来包住。 
-->

<body>
    <div class="container">
        <p> </p>
        <div class="items">
            <div class="item"></div>
            <div class="item"></div>
            <div class="item"></div>
            <div class="item rotate" style="font-size:36px;font-weight:bold;">爱</div>
            <div class="item"></div>
            <div class="item rotate" style="font-size:36px;font-weight:bold;">莲</div>
            <div class="item"></div>
            <div class="item rotate" style="font-size:36px;font-weight:bold;">说</div>
            <div class="item"></div>
            <div class="item"></div>
            <div class="item"></div>
            <div class="item"></div>
            <p> </p>
        </div>
        <p class='action1'></p>
    </div>
</body>
<!--引入jquery依赖-->
<script src="jquery.min.js"></script>
<script>
    var arr = "水陆草木之花，可爱者甚蕃。晋陶渊明独爱菊。自李唐来，世人甚爱牡丹。予独爱莲之出淤泥而不染，濯清涟而不妖，中通外直，不蔓不枝，香远益清，亭亭净植，可远观而不可亵玩焉。予谓菊，花之隐逸者也；牡丹，花之富贵者也；莲，花之君子者也。噫！菊之爱，陶后鲜有闻。莲之爱，同予者何人？牡丹之爱，宜乎众矣！".split("");

    var cHeight = $(".items").height();

    var textHeight = $(".item").height();

    var vCount = parseInt(cHeight / textHeight); //每列显示的字数

    var textArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (i % 20 == 0) {
            textArr.push({
                "hanzi": arr[i]
            });
        } else {
            textArr[textArr.length - 1].hanzi += arr[i];
        }
    }

    var html = "";
    for (var j = 0; j < textArr.length; j++) {
        html += "<div class='items'>";
        var tempArr = textArr[j].hanzi.split("");
        console.log(tempArr)
        for (var k = 0; k < tempArr.length; k++) {
            if (/[<>《》！*(^)$%~!@#$…&%￥—+=、。，；‘’“”：·`]/.test(tempArr[k])) {
                html += "<div class='item' style='display:inline'>" + tempArr[k] + "</div>";
            } else {
                html += "<div class='item rotate'>" + tempArr[k] + "</div>";
            }
        }
        html += "</div>";
    }

    $(".action1").after(html);
</script>

</html>